home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-02 / nrpas13.zip / BESSJ0.PAS < prev    next >
Pascal/Delphi Source File  |  1991-04-29  |  851b  |  22 lines

  1. FUNCTION bessj0(x: real): real;
  2. VAR
  3.    ax,xx,z: real;  y,ans,ans1,ans2: double;
  4. BEGIN
  5.    IF (abs(x) < 8.0) THEN BEGIN
  6.       y := sqr(x);
  7.       ans1 := 57568490574.0+y*(-13362590354.0+y*(651619640.7
  8.          +y*(-11214424.18+y*(77392.33017+y*(-184.9052456)))));
  9.       ans2 := 57568490411.0+y*(1029532985.0+y*(9494680.718
  10.          +y*(59272.64853+y*(267.8532712+y*1.0))));
  11.       bessj0 := sngl(ans1/ans2)  END
  12.    ELSE BEGIN
  13.       ax := abs(x); z := 8.0/ax; y := sqr(z); xx := ax-0.785398164;
  14.       ans1 := 1.0+y*(-0.1098628627e-2+y*(0.2734510407e-4
  15.          +y*(-0.2073370639e-5+y*0.2093887211e-6)));
  16.       ans2 := -0.1562499995e-1+y*(0.1430488765e-3
  17.          +y*(-0.6911147651e-5+y*(0.7621095161e-6
  18.          -y*0.934945152e-7)));
  19.       ans := sqrt(0.636619772/ax)*(cos(xx)*ans1-z*sin(xx)*ans2);
  20.       bessj0 := sngl(ans)  END
  21. END;
  22.